/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.torresquintero.oncologos.common.vista;

import com.torresquintero.oncologos.common.factory.LogginManager;

import java.util.ArrayList;
import java.util.Arrays;
import javax.swing.JMenuItem;

/**
 * Clase para crear un menuItem que se adapte a los roles activos en el momento.
 * @author Camilo Andres
 *
 */
public class MenuItemOncologos extends JMenuItem {

    /**
     * Lista que indica los roles para los cuales
     * estara activo este menu.
     */
    private ArrayList<String> roles;
    /**
     * Nombre del componente.
     */
    private String nombreComponente;

    /**
     * Metodo que le asigna un nmobre al componente y extrae sus roles del
     * archivo de propiedades.
     * @param nombreComponente 
     */
    public void setNombreComponente(String nombreComponente) {
        this.nombreComponente = nombreComponente;
        roles = new ArrayList<String>();
        roles.addAll(Arrays.asList(RolesComponentsManager.getRolesComp(nombreComponente)));
    }

    /**
     * Constructor.
     */
    public MenuItemOncologos() {
        super();
        roles = new ArrayList<String>();
    }

    /**
     * MEtodo para agregar un rol a este Menu.
     * @param roles arreglo con los roles a asignar. 
     */
    public void agregarRoles(String... roles) {

        this.roles.addAll(Arrays.asList(roles));
    }

    @Override
    /**
     * Este metodo le permite a la opcion de menu aparecer en la GUI
     * si alguno de sus roles esta en la session.
     */
    public boolean isVisible() {

        if (LogginManager.getRolesActivos() != null) {
            String[] rolesActivos = LogginManager.getRolesActivos();

            for (String rol : rolesActivos) {
                if (roles.contains(rol)) {
                    return true;
                }
            }
        }else{
            return true;
        }
        return false;

    }
}
